package collections.collection.list.ArrayList;

import java.util.*;

/**
 * @author zxl
 * @version 1.0
 * @date 2021/10/23 20:57
 */
public class Test {
    public static void main(String[] args) {
        ArrayList<String> objects = new ArrayList<>();
        objects.add("b");
        objects.add("c");
        objects.add("a");
        objects.add("f");
        objects.add("g");
        objects.add("h");
        objects.add("d");
        objects.add("e");

        for (int i = 0; i < objects.size(); i++) {
            System.out.print(objects.get(i)+",");
        }
        System.out.println();

        /**
         * 迭代器(iterator)是一种抽象的设计理念，通过迭代器可以在不了解容器内部原理的情况下遍历容器
         * 迭代器是一种轻量级对象,一种设计模式
         */
        Iterator<String> iterator = objects.iterator();
        System.out.print("迭代器：");
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.print(next+",");
        }
        System.out.println();

        //对当前集合进行升序排序,实现Comparable接口的类，只能使用一种排序方案，这种方案叫作“自然比较”方案。
        System.out.print("排序：");
        Collections.sort(objects, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                int num = o1.compareTo(o2);
                return num;
            }
        });
        for (int i = 0; i < objects.size(); i++) {
            System.out.print(objects.get(i)+",");
        }
        System.out.println();

        //Reverse（element）：逆序排序，对当前集合的元素按照相反的顺序进行排序
        Collections.reverse(objects);
        System.out.print("逆向排序：");
        for (int i = 0; i < objects.size(); i++) {
            System.out.print(objects.get(i)+",");
        }
        System.out.println();

        //Shuffle（element）：洗牌方法，将当前集合内的数据进行随机排序。
        Collections.shuffle(objects);
        System.out.print("洗牌：");
        for (int i = 0; i < objects.size(); i++) {
            System.out.print(objects.get(i)+",");
        }
        System.out.println();

    }
}
